#ifndef STARRYNIGHT_H
#define STARRYNIGHT_H

#include "Effects/RGBEffect.h"

struct NewStar
{
    unsigned int        Index;
    unsigned int        LED;
    float               state;
    RGBColor            Color;
};

class StarryNight: public RGBEffect
{
public:
    StarryNight();
    ~StarryNight() {};

    //EFFECT_REGISTERER(ClassName(), CAT_ADVANCED, [](){return new StarryNight;});

    static std::string const ClassName() {return "StarryNight";}

    void StepEffect(ControllerZone* const controller_zone) override;
    void OnControllerZonesListChanged(ControllerZone* const controller_zone) override;

private:
    std::vector<NewStar> CurrentStars;
};

#endif // STARRYNIGHT_H
